package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Student;
/*
    库管:操作数据库
 */
public class StudentDao {
    //定义数组容器,管理学生对象数据,作为系统的数据仓库
    private static Student[] stus = new Student[5];

    //库管添加学生功能
    public boolean addStudent(Student stu) {
        //1 装载学生对象
        /*
            找到可以添加的位置
            重点:哪里为null,在哪里添加
            #标记位# : 假设数组已满,每个位置都 != null;
        */
        int index = -1;
        for (int i = 0; i < stus.length; i++) {
            Student student = stus[i];
            if (student == null) {//当前索引为空,可以存储
                index = i;//记录位置
                break;//一旦找到就跳出
            }
        }
        //3 返回结果
        if (index == -1) {
            return false;//没位置了
        } else {
            stus[index] = stu;//装载完成
            return true;
        }

    }

    //库管-添加学生功能-判断学号是否已存在-提供数据仓库
    public Student[] findAllStudent() {
        return stus;
    }

    //库管-删除学生功能
    public void deleteStudent(String id) {
        int index = getIndex(id);
        stus[index] = null;
    }
    //库管-删除学生功能 - 通过id找到位置.返回索引
    private int getIndex(String id) {
        int index = -1;
        for (int i = 0; i < stus.length; i++) {
            if (stus[i] != null && stus[i].getSid().equals(id)){
                index = i;
                break;
            }
        }
        return index;
    }
    //库管-修改学生功能
    public void updateStudent(Student stu) {
        int index = getIndex(stu.getSid());
        stus[index] = stu;
    }
}

